<?php
class Links extends Controller
{
	public function _default()
	{
		$typeid = isset($_REQUEST['typeid']) ? intval($_REQUEST['typeid']) : 0;
		$page = isset($_REQUEST['page']) ? intval($_REQUEST['page']) : 1;
		$where = $typeid ? "typeid=$typeid" : '';
		$pageSize = isset($_REQUEST['pageSize']) ? intval($_REQUEST['pageSize']) : 40;
		$links = LinkModel::getList($where, $page, $pageSize);
		
		$count = LinkModel::getCount($where);
		
		$pageNav = Util::page($count, $pageSize);
		
		$linkTypes = LinkTypeModel::getList();
		$this->assign('pageNav', $pageNav);
		$this->assign('pageSize', $pageSize);
		$this->assign('linkTypes', $linkTypes);
		$this->assign('typeid', $typeid);
		$this->assign('links', $links);
		$this->display('link.tpl');
	}
	
	public function add()
	{
		if (isset($_POST['act'])){
			$act = trim($_POST['act']);
			$name = isset($_REQUEST['name']) && $_REQUEST['name'] ? trim($_REQUEST['name']) : Util::msgRedirect('缺少链接名称');
			$url = isset($_REQUEST['url']) && $_REQUEST['url'] ? trim($_REQUEST['url']) : Util::msgRedirect('缺少链接');
			$typeid = isset($_REQUEST['typeid']) && $_REQUEST['typeid'] ? intval($_REQUEST['typeid']) : 0;
			$typename = isset($_REQUEST['typename']) ? trim($_REQUEST['typename']) : '';
			$logo = isset($_REQUEST['logo']) ? trim($_REQUEST['logo']) : '';
			$priority = isset($_REQUEST['priority']) && $_REQUEST['priority'] ? intval($_REQUEST['priority']) : 100; 
			if (!$typeid && !$typename){
				Util::msgRedirect('缺少栏目分类');
			}else{
				if (!$typeid){
					$typeid = LinkTypeModel::add($typename);
				}
			}
			$logo = str_replace(APP_HOST, '', $logo);
			if ($act == 'add'){
				if (LinkModel::add($typeid, $name, $url, $logo, $priority)){
					Util::msgRedirect('添加成功', '/Admin/Links');
				}else{
					Util::msgRedirect('添加失败');
				}
			}else{
				$id = isset($_REQUEST['id']) && $_REQUEST['id'] ? intval($_REQUEST['id']) : Util::msgRedirect('缺少ID');
				$data = array(
					'name'	=> $name,
					'url'	=> $url,
					'typeid'=> $typeid,
					'logo'	=> $logo,
					'priority'	=> $priority,
				);
				if (LinkModel::update($id, $data)){
					Util::msgRedirect('更新成功', '/Admin/Links');
				}else{
					Util::msgRedirect('更新失败');
				}
			}
		}else{
			$linkType = LinkTypeModel::getList();
			$this->assign('linkTypes', $linkType);
			
			$this->display('link_add.tpl');
		}
	}
	
	public function edit()
	{
		$id = isset($_REQUEST['id']) && $_REQUEST['id'] ? intval($_REQUEST['id']) : Util::msgRedirect('缺少ID');
		$link = LinkModel::get($id);
		if (!$link) {
			Util::msgRedirect('链接不存在');
		}
		$this->assign('act', 'edit');
		$this->assign('link', $link);
		$this->add();
	}
	
	public function del()
	{
		$id = isset($_REQUEST['id']) && $_REQUEST['id'] ? intval($_REQUEST['id']) : Util::msgRedirect('缺少ID');
		if (LinkModel::del($id)){
			Util::msgRedirect('删除成功', '/Admin/Links');
		}else{
			Util::msgRedirect('删除失败');
		}
	}
}